/*
 * Copyright (c) 2012 copyright Gábor Heizer
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
 * is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package hu.my.bnf;

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * Constans.
 */
public final class Constants {

//--------------------------------------------------------------------------------------------------------------------------------
// Fields
//--------------------------------------------------------------------------------------------------------------------------------

    /**
     * Limit the number of entries in Map (Type: int).
     */
    public static final String EBNF_MAP_LIMIT = "hu.my.bnf.ebnf.maplimit";

    /**
     * Empty (Type: String).
     */
    public static final String EMPTY_STRING = "";

    /**
     * Resource Bundle.
     */
    public static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(Constants.class.getName());

    /**
     * Operating system name (Type: String).
     */
    private static final String OS_NAME = System.getProperty("os.name").toLowerCase(Locale.getDefault());

    /**
     * Line Separator. Unix: \n, Windows: \r\n  (Type: String).
     */

    @SuppressWarnings("HardcodedLineSeparator")
    private static final String LINE_SEPARATOR_UNIX = "\n";

    @SuppressWarnings("HardcodedLineSeparator")
    private static final String LINE_SEPARATOR_WINDOWS = "\r\n";

    public static final String LINE_SEPARATOR = System.getProperty(
            "line.separator",
            OS_NAME.contains("win") ? LINE_SEPARATOR_WINDOWS : LINE_SEPARATOR_UNIX);

    /**
     * Resource (Type: int).
     */
    public static final String RES_EBNF_MAP_LIMIT = "maplimit";

//--------------------------------------------------------------------------------------------------------------------------------
// Constructors
//--------------------------------------------------------------------------------------------------------------------------------

    /**
     * Prevents instantiation.
     */
    private Constants() {
    }
}
